package br.com.statizo.financeiro.controller.impl;


public class LancamentoControllerImpl {

//	
//	@Autowired
//	private RepositorioLancamento repositorioLancamento;
//	
//	private List<Lancamento> parcelas = new ArrayList<>();
//	
//	private Integer nuParc = new Integer(0);
//	
//	private Map<Integer,Boolean> baixaMap;
//	
//	
//	@Autowired
//	private CalendarService calendarService;
//	
//
//
//	@Override
//	public void refreshList() {
//		this.entityList = repositorioLancamento.getLancamentosDoPeriodo(calendarService.getRealSelectedMonth(), calendarService.getYear());
//		sortList();
//	}
//
//	@Override
//	public void createNew() {
//		entity = new Lancamento();
//	}
//
//
//	@Override
//	public void setEntity(Lancamento entity) {
//		this.entity = entity;
//	}
//	
//	public Integer getNuParc() {
//		return nuParc;
//	}
//	
//	
//	public void setNuParc(Integer nuParc) {
//		this.nuParc = nuParc;
//	}
//
//	//@BeforeSave
//	public void gerarParcelas(){
//		
//		if(nuParc > 1){
//			parcelas = new ArrayList<>(nuParc);
//			double realValor = entity.getValor() / nuParc;
//			entity.setValor(realValor);
//			
//			for(int i = 0; i<nuParc-1; i++){
//				
//				Calendar nextDate = new GregorianCalendar(entity.getDataPagamento().get(Calendar.YEAR),
//						entity.getDataPagamento().get(Calendar.MONTH),entity.getDataPagamento().get(Calendar.DATE));
//				nextDate.add(Calendar.MONTH, i+1);
//				
//				Lancamento parcela = new Lancamento();
//				
//				parcela.setValor(realValor);
//				parcela.setComplemento(this.entity.getComplemento());
//				parcela.setTipo(entity.getTipo());
//				parcela.setTipoPagamento(entity.getTipoPagamento());
//				parcela.setControleGastos(entity.isControleGastos());
//				parcela.setDataDivida(entity.getDataDivida());
//				parcela.setDataPagamento(nextDate);
//				parcela.setRecursoAlocado(entity.isRecursoAlocado());
//				parcela.setRecurso(entity.getRecurso());
//				//parcela.setPrimeiraParcela(lancamento);
//				parcelas.add(parcela);
//				
//			}
//		
//			
//			
//		}
//		
//		
//	}
//	
//	
//	//@AfterSave
//	@Transactional(propagation=Propagation.REQUIRED)
//	public void setParcelasVinculadas(){
//
//		for (int i = 0; i < parcelas.size(); i++) {
//			
//			Lancamento parc = parcelas.get(i);
//			parc.setPrimeiraParcela(entity);
//			//parc = lancamentoService.save(parc);
//			
//		}
//		
//	}
//	
//	
//	@Override
//	public void select(int[] indices) {
//		super.select(indices);
//		this.parcelas.clear();
//	}
//	
//	
//	public void selectToBaixa(Map<Integer,Boolean> baixaMap){
//		this.baixaMap = baixaMap;
//	}
//	
//	
//	@Transactional(propagation=Propagation.REQUIRED)
//	public void executarBaixa(){
//		
//		/*
//		if(baixaMap == null)
//			return;
//		
//		Set<Integer> mapKeys = baixaMap.keySet();
//		
//		for(int key:mapKeys){
//			
//			List<Lancamento> lancamentos = repositorioLancamento.getList(calendarService.getRealSelectedMonth(), calendarService.getYear(), null);
//			Lancamento l = lancamentos.get(key);
//			boolean pago = baixaMap.get(key);
//
//			if(pago != l.isPago()){
//				l.setPago(baixaMap.get(key));
//				lancamentos.set(key, repositorioLancamento.merge(l));
//			}
//			
//		}
//		*/
//		
//		
//		for(int i = 0; i<selectedIndices.length; i++){
//			
//			int realIndex = selectedIndices[i];
//			Lancamento lancamento = this.entityList.get(realIndex);
//			
//			boolean pago = lancamento.isPago();
//			
//			lancamento.setPago(!pago);
//			lancamento = repo.merge(lancamento);
//			
//		}
//		
//		
//		
//		
//		
//	}
//	
//	
//	
//
//	
//
//	
//	
//	@Autowired
//	public void setLancamentoService(LancamentoService lancamentoService){
//		//this.lancamentoService = lancamentoService;
//	}
//
//
//
//
//	@Override
//	public void reorder(Comparator<Lancamento> comparator) {
//		//lancamentoService.sort(comparator);
//	}
//	
//
//
//
//	@Override
//	public Comparator<Lancamento> getCollectionComparator() {
//		// TODO Auto-generated method stub
//		return null;
//	}
//
// 
//
//	
//	@Override
//	@Transactional(propagation=Propagation.REQUIRED)
//	public void save() {
//		super.save();
//	}
//	
//	@Override
//	@Transactional(propagation=Propagation.REQUIRED)
//	public void delete() {
//		super.delete();
//	}
//	
//	
//
//	@Override
//	public void add() {
//		this.entity = new Lancamento();
//		unselectAll();
//	}
//
//
//	@Override
//	public EntityTableConverter getEntityTableConverter() {
//		return new LancamentoTableConverter();
//	}
//
//	@Autowired
//	public void setRepositorioLancamento(RepositorioLancamento repositorioLancamento){
//		this.setRepo(repositorioLancamento);
//	}
//
//	
//	public boolean onlyAbertos(){
//		
//		String sit = (String) this.filterMap.get("situacao");
//		return ("aberto".equals(sit));
//		
//	}
//	
//	@Override
//	public void doFilter() {
//
//		this.indexList.clear();
//		
//		boolean onlyAbertos = onlyAbertos();
//		
//		for(int i = 0; i<this.entityList.size(); i++){
//			
//			boolean checkSit = (onlyAbertos && !this.entityList.get(i).isPago()) || !onlyAbertos;
//			
//			if(checkSit)
//				this.indexList.add(i);
//			
//			
//		}
//		
//	}
//	
	
}